JS - Objecten - Beschrijving
Home

JS - Objecten - Beschrijving

JS - Objecten - Beschrijving

Wat zijn dat eigenlijk objecten? In JavaScript erven alle objecten - behalve de primitieve gegevenstypes string, number en boolean - over van Object. Object is een hash, ook wel associatieve array genoemd, een verzameling van eigenschappen die een sleutel van om het even wel gegevenstype kan bevatten en een waarde die ook van om het even wel gegevenstype kan zijn.

Arrays zijn een speciaal soort objecten

Een array is een lijst van waarden. Elke waarde heeft een index, een numerieke sleutel, die begint met 0 en met 1 vermeerderd wordt voor elke waarde. We zitten hier heel ver van de manier waarop arrays geïmplementeerd worden in talen als C en C++. En het is dat verschil die het mogelijk maakt van de overgang naar objecten te maken. Als je dat bekijkt vanuit het standpunt van C en C++ is helemaal chinees.

Een array is een lijst van waarden. Elke waarde heeft een index, een numerieke sleutel, die begint met 0 en met 1 vermeerderd wordt voor elke waarde. We zitten hier heel ver van de manier waarop arrays geïmplementeerd worden in talen als C en C++. En het is dat verschil die het mogelijk maakt van de overgang naar objecten te maken. Als je dat bekijkt vanuit het standpunt van C en C++ is helemaal chinees.

var my_array = ['appel', 'peer', 'sinaasappel', 'ananas',
       'citroen', 'mango'];

Je kan een JavaScript array voorstellen als een tabel. In de eerste kolom staat de sleutel, namelijk de index, en in de tweede kolom staat de waarde:

Sleutel Waarde
0 appel
1 peer
2 sinaasappel
3 ananas
4 citroen
5 mango

Associatieve arrays zijn geen arrays maar gewone objecten

Een object gelijkt op een array, met verschil dat je de sleutels zelf kan bepalen. Je bent niet beperkt tot het gebruik van getallen, je kan meer betekenisvolle namen gebruiken als voornaam, familienaam, postcode, straat enz.

We beginnen met een eenvoudig voorbeeld:

var persoon = [];
persoon['voornaam'] = 'Jef';
persoon['familienaam'] = 'Inghelbrecht';
persoon['straat'] = 'Rue des Blancs Manteaux 38';
persoon['postcode'] = '75001';
persoon['geslacht'] = 'man';

Let erop dat als je een associatieve array maakt, je geen gebruik meer kunt maken van de standaard array methoden en eigenschappen.

var x = persoon.length // retourneert 0
var y = persoon[0] // retourneert undefined

In het volgend voorbeeld gebruiken we de declaratieve manier om een associatieve array te maken:

var persoon = {
   voornaam: 'Jef',
   familienaam: 'Inghelbrecht',
   straat: 'Rue des Blancs Manteaux 38',
   stad: 'Paris',
   postcode: '75001',
   geslacht: 'man'
};
Sleutel Waarde
voornaam Jef
familienaam Inghelbrecht
straat Rue des Blancs Manteaux 38
stad Parijs
postcode 75001
geslacht man

Het zou veel eenvoudiger zijn om de technisch juiste termen te blijven gebruiken. Een object in JavaScript bestaat niet, het is een associatieve array die, om mee te doen aan de OO mode, een object genoemd wordt.

In bepaalde programmeertalen wordt een onderscheid gemaakt tussen:

In JavaScript worden array's gebruikt om geïndexeerde array's voor te stellen en objecten om associatieve array's voor te stellen.

Bronnen

MDN, Introduction to Object-Oriented JavaScript, 15/09/2016

W3schools.com, JavaScript Objects

JI
2017-10-26 12:43:32